package com.gradumate.client.gui.formulier;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CaptionPanel;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.gradumate.client.Element;

/**
 * 
 * @author IJsbrand
 *
 */
public class TabIntroductie {
	private AfstudeerVoorstelIndienen tp;
	private Element e = new Element();
	private int row;
	
	public TabIntroductie(AfstudeerVoorstelIndienen tp) {
		this.tp = tp;
	}
	
	/**
	 * Deze methode bevat alles wat te maken heeft met de tab Introductie: <br>
	 * - alle visuele onderdelen zoals labels en buttons<br>
	 * - ClickHandler voor de afhandeling van het click event van de button "volgende". Indien geselecteerd zal de ClickHandler aangeroepen worden.
	 *<br>
	 *Deze tab geeft alleen wat informatie over wat je te wachten staat in de rest van het webformulier.<br>
	 *
	 * @return De complete tab introductie. Deze bestaat uit een FlexTable waarin alle widgets van de tab zitten.
	 */
	public Widget getTabIntroductie() {
		
		Button btnVolgende = e.getVolgendeButton();
		btnVolgende.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
				tp.changeTab(0,1);
			}
		});

		Label lab1_1 = new Label("Het indienen van het voorstel is verdeeld over meerdere stappen. Het indienen is pas voltooid wanneer alle vereiste gegevens zijn ingevuld.");
		Label lab3 = new Label("Met de knoppen onderaan de pagina kan naar de vorige stap worden terug gegaan, de registratie gestopt worden of naar de volgende stap gegaan worden.");
		Label lab4 = new Label("Op de laaste pagina word er een overzicht getoond van de ingevulde gegevens. Deze ontvang je ook ter bevestiging op je HU-email adres.");

		Label lblVoorHetIndienen = new Label("Voor het indienen van een afstudeeervoorstel hebben wij de volgende informatie nodig:");
		lblVoorHetIndienen.setStyleName("vetgedrukt");

		Label lblBfdkjf = new Label("- Je persoonlijke gegevens");
		Label lblDeGegevens = new Label("- De gegevens van de organisatie waar de afstudeeropdracht uitgevoerd wordt. ");
		Label lblDeGegevens_1 = new Label("- De gegevens van de contactpersoon van de organisatie.");
		Label lblEenKorte = new Label("- Een korte omschrijving van de opdracht, probleemstelling,doelstelling of het gewenste eindresultaat.");
		Label lblEenOpsommingVan = new Label("- Een opsomming van de vaardigheidseisen.");
		Label lblEenUitgebreide = new Label("- Een uitgebreide omschrijving van de opdracht in een document.");
		Label lblHetType = new Label("- Het type praktijkopdracht.");
		Label lblDetailsVan = new Label("- Details van de opdracht.");

		Anchor hprlnkIntroAnnuleren = new Anchor("Annuleren","https://www.sharepoint.hu.nl");
		HorizontalPanel hpAnnuleren = new HorizontalPanel();
		hpAnnuleren.add(e.getSpacer());
		hpAnnuleren.add(hprlnkIntroAnnuleren);
		hpAnnuleren.add(e.getImage("Stop, ga terug", "cancel.png"));

		row = 0;
		FlexTable flxIntroHeader = new FlexTable();
		flxIntroHeader.setCellPadding(0);
		flxIntroHeader.setCellSpacing(3);
		flxIntroHeader.setWidget(row, 0, e.getAfstudeerVoorstelIndienenHeader());
		row++;
		flxIntroHeader.setWidget(row, 0, lab1_1);
		row++;
		flxIntroHeader.setWidget(row, 0, lab3);
		row++;
		flxIntroHeader.setWidget(row, 0, lab4);

		row = 0;
		FlexTable flxIntroContent = new FlexTable();
		flxIntroContent.setCellPadding(0);
		flxIntroContent.setCellSpacing(3);

		flxIntroContent.setWidget(row, 0, lblVoorHetIndienen);
		row++;
		flxIntroContent.setWidget(row, 0, lblBfdkjf);
		row++;
		flxIntroContent.setWidget(row, 0, lblDeGegevens);
		row++;
		flxIntroContent.setWidget(row, 0, lblDeGegevens_1);
		row++;
		flxIntroContent.setWidget(row, 0, lblEenKorte);
		row++;
		flxIntroContent.setWidget(row, 0, lblEenOpsommingVan);
		row++;
		flxIntroContent.setWidget(row, 0, lblEenUitgebreide);
		row++;
		flxIntroContent.setWidget(row, 0, lblHetType);
		row++;
		flxIntroContent.setWidget(row, 0, lblDetailsVan);

		CaptionPanel cpIntro = new CaptionPanel("Intro");
		cpIntro.add(flxIntroContent);

		row = 0;
		FlexTable flxIntroFooter = new FlexTable();
		flxIntroFooter.setCellPadding(0);
		flxIntroFooter.setCellSpacing(10);
		flxIntroFooter.setWidget(row, 0, btnVolgende);
		flxIntroFooter.setWidget(row, 1, hpAnnuleren);

		row = 0;
		FlexTable flxIntro = new FlexTable();
		row++;
		flxIntro.setWidget(row, 0, flxIntroHeader);
		row++;
		flxIntro.setWidget(row, 0, cpIntro);
		row++;
		flxIntro.setWidget(row, 0, flxIntroFooter);

		return flxIntro;
	}
}
